#En este apartado se nos pide generar un gráfico interactivo a raÃz de un archivo de datos sobre el covid.
#Para empezar, establecemos las librerÃas que vamos a utilizar:
library(readr)
library(ggplot2)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#Importamos dicho archivo con readr.
df <- read_csv("data/owid-covid-data.csv")
## Rows: 261499 Columns: 67
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (4): iso_code, continent, location, tests_units
## dbl (62): total_cases, new_cases, new_cases_smoothed, total_deaths, new_dea...
## date (1): date
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df$date <- as.Date(df$date, format = "%Y-%m-%d") #Establecemos la fecha en formato año-mes-dÃa.
#Se nos pide que este gráfico está compuesto por datos hasta la fecha actual y por un grupo de paÃses, establecemos los paÃses que buscamos en la variable 'paises'.
paises <- c("Canada","France","Germany","Italy","Japan","Spain","United Kingdom","United States")
#Filtramos nuestro conjunto de datos por los paÃses establecidos mediante la función filter()
df_filtrado <- df %>%
filter(location %in% paises)
#Establecemos que color queremos que represente cada paÃs, buscamos sobre todo que el negro represente el conjunto de datos de España.
colores <- c("Canada" = "red","France" = "orange","Germany" = "green","Italy" = "cyan","Japan" = "blue","Spain" = "black","United Kingdom" = "deeppink","United States" = "purple")
#Mediante la función ggplot generamos un gráfico y especificamos geom_line para que corresponda con un gráfico de lÃneas que represente nuestro conjunto de datos.
#Con la función labs estableceremos el tÃtulo que queremos.
nuevos_datos <-ggplot(df_filtrado, aes(x = date, y = new_deaths_smoothed_per_million, color = location, group = location)) + geom_line() + scale_y_continuous(breaks = seq(0, 18, by = 2)) + scale_x_date(date_labels = "%b %d %Y", breaks = seq(min(df_filtrado$date), max(df_filtrado$date), length.out = 5), limits = c(min(df_filtrado$date), as.Date("2022-02-28")))+scale_color_manual(values=colores)+geom_line(data = filter(df_filtrado, location == "Spain"), size = 0.9, col = "black")+labs(title = "Daily new confirmed COVID-19 deaths per million people", x = "date", y = "new_deaths_smoothed_per_million", color = "paises")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
nuevos_datos
## Warning: Removed 3206 rows containing missing values (`geom_line()`).
## Warning: Removed 404 rows containing missing values (`geom_line()`).

ggplotly(nuevos_datos)